Inside Macintosh: QuickTime Components
| Previous | Chapter contents | Chapter top | Section top | Next |
Listing 3 provides the component dispatchers for the movie export component together with the required functions.
Listing 3 Implementing the required export functions
typedef struct {
ComponentInstance self;
} ExportPICSGlobalsRecord, *ExportPICSGlobals;
/* entry point for all Component Manager requests */
pascal ComponentResult ExportPICSDispatcher
(ComponentParameters *params,
Handle storage)
{
OSErr err = badComponentSelector;
ComponentFunction componentProc = 0;
switch (params->what) {
case kComponentOpenSelect:
componentProc = ExportPICSOpen; break;
case kComponentCloseSelect:
componentProc = ExportPICSClose; break;
case kComponentCanDoSelect:
componentProc = ExportPICSCanDo; break;
case kComponentVersionSelect:
componentProc = ExportPICSVersion; break;
case kMovieExportToFileSelect:
componentProc = ExportPICSToFile; break;
}
if (componentProc)
err = CallComponentFunctionWithStorage (storage, params,
componentProc);
return err;
}
pascal ComponentResult ExportPICSCanDo (ExportPICSGlobals store,
short ftnNumber)
{
switch (ftnNumber) {
case kComponentOpenSelect:
case kComponentCloseSelect:
case kComponentCanDoSelect:
case kComponentVersionSelect:
case kMovieExportToFileSelect:
return true;
break;
default:
return false;
break;
}
}
pascal ComponentResult ExportPICSVersion (ExportPICSGlobals store)
{
return 0x00010001;
}
pascal ComponentResult ExportPICSOpen (ExportPICSGlobals store,
ComponentInstance self)
{
OSErr err;
store = (ExportPICSGlobals) NewPtrClear
(sizeof(ExportPICSGlobalsRecord));
if (err = MemError()) goto bail;
store->self = self;
SetComponentInstanceStorage(self, (Handle)store);
bail:
return err;
}
pascal ComponentResult ExportPICSClose (ExportPICSGlobals store,
ComponentInstance self)
{
if (store) DisposPtr((Ptr)store);
return noErr;
}
| Previous | Chapter contents | Chapter top | Section top | Next |